prompt_dialogue = \
"""下面是一组对话示例，对话过程中ASSISTANT使用到了给定的api:
<对话示例>
api定义:
{
    "name": "generate_password",
    "description": "Generate a random password",
    "parameters": {
        "type": "object",
        "properties": {
            "length": {
                "type": "integer",
                "description": "The length of the password"
            },
            "include_symbols": {
                "type": "boolean",
                "description": "Whether to include symbols in the password",
                "default": true
            }
        },
        "required": [
            "length"
        ]
    }
}
对话：
[
    {"from": "USER", "value": "I need a new password. Can you generate one for me?"},
    {"from": "ASSISTANT", "value": "Of course. How long would you like your password to be? And would you like it to include symbols?"},
    {"from": "USER", "value": " I would like it to be 12 characters long and yes, please include symbols."},
    {"from": "ASSISTANT", "value": "<functioncall> {\"name\": \"generate_password\", \"arguments\": {\"length\": 12, \"include_symbols\": true}}</functioncall>"},
    {"from": "FUNCTION RESPONSE", "value": "{\"password\": \"4&7j#9@1Q6*\"}"},
    {"from": "ASSISTANT", "value": "Here is your new password: 4&7j#9@1Q6*. Please make sure to save it in a secure location."}
]
</对话示例>
<对话示例说明>
针对如上示例的几点说明：
（1）其中ASSISTANT回答中出现了<functioncall>, 代表要开始使用api了。<functioncall>和</functioncall>之间的信息为json的字符串表示，内容包含了要调用的api和传入参数："name"为ASSITANT要调用的api名字，"arguments"里包含了该api各传入参数的值
（2）FUNCTION RESPONSE的回答内容是api调用返回的结果
（3）FUNCTION RESPONSE之后的ASSISTANT的回答，是ASSITANT理解FUNCTION RESPONSE之后的回答
</对话示例说明>

在理解了如上内容后，请根据如下要求生成内容。
要求：
1. api定义：
    {{ api }}
2. 对话过程中ASSISTANT会使用到要求1中的api。
3. 对话内容必须要包含FUNCTION RESPONSE的内容，并且这部分内容不能用占位符之类的含糊省略描述，可以想象生成合乎逻辑的api调用返回结果。
4. 对话内容连贯自然。对话过程中USER不能直接提到1中的api，是否调用api要靠ASSISTANT通过逻辑推理自行判断。
5. 若USER没有提供该api的required传入参数，ASSISTANT要主动询问USER这些参数的取值。如果有defalut取值的传入参数USER未提供，ASSISTANT要告知USER这些参数的dafault取值。
6. 对话内容为中文。
7. USER有一定概率在一轮对话中一次性表达意图和提供所有api传入参数值，也有可能分多轮对话给出所有信息。在生成对话的时候最大可能保证USER表述方式的多样性。
8. 生成{{ num_diags }}组满足要求的对话，格式遵循<对话示例>中的对话部分，要包含USER, ASSISTANT的内容。不同对话之间USER的语言表达方式差异尽可能大。直接返回json, 每组对话为json的一个list元素，不要说其他的话。
"""



t = Template(prompt_api)